package com.msb.nacosconfig.controller;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/****************************************************
 * 在通过主机@Value 把配置文件的配置项与类中的属性绑定时，可以通过注解 @RefreshScope 实现配置的动态
 * 刷新
 *
 * @author lbf
 * @date 2025/6/16 15:06
 ****************************************************/
@RefreshScope
@RestController
public class ConfigController {

    @Value("${config.info}")
    private String configInfo;


    /**
     * todo 注意：
     *    在高版本的spring cloud alibaba nacos config 中，nacos 原生注解 @NacosValue （动态获取配置nacos配置文件值，支持动态刷新）
     *    不生效，官方支持使用spring cloud 原生注解 @Value+@RefreshScope 的方式实现配置的动态刷新
     */
    //@NacosValue(value = "${config.info}",autoRefreshed = true)
    private String config;

    @GetMapping("/config/info")
    public String test(){
        System.out.println(" config = "+config);
        System.out.println(" configInfo = "+configInfo);
        return this.configInfo;
    }
}
